package com.schoolhelper.notification.service;

import com.schoolhelper.notification.domain.Notification;
import java.util.List;

/**
 * 通知服务接口
 */
public interface NotificationService {
    
    /**
     * 创建通知
     */
    boolean createNotification(Notification notification);
    
    /**
     * 创建任务相关通知
     */
    boolean createTaskNotification(Long userId, String type, String title, String content, Long taskId, Long relatedUserId);
    
    /**
     * 创建好友请求通知
     */
    boolean createFriendRequestNotification(Long userId, String title, String content, Long requestId, Long relatedUserId);
    
    /**
     * 获取用户通知列表
     */
    List<Notification> getUserNotifications(Long userId, int page, int size);
    
    /**
     * 获取用户未读通知数量
     */
    int getUnreadCount(Long userId);
    
    /**
     * 获取用户未读通知列表
     */
    List<Notification> getUnreadNotifications(Long userId);
    
    /**
     * 标记通知为已读
     */
    boolean markAsRead(Long notificationId);
    
    /**
     * 标记通知为已读（带用户权限验证）
     */
    boolean markAsRead(Long notificationId, Long userId);
    
    /**
     * 标记所有通知为已读
     */
    boolean markAllAsRead(Long userId);
    
    /**
     * 删除通知
     */
    boolean deleteNotification(Long notificationId);
}